# -*- coding: utf-8 -*-

# Autor: Pedro Godinho, n.º 6355
# Data: 06/12/2011

# imports necessários para a criação dos CSV's e das pastas
# faz import da classe Dados
import csv
import os
from Dados import Dados

class CriarCSV:
    '''
    Classe responsavel pela criação dos ficheiros em csv
    com as estatisticas
    '''

    def csvNDocentesEstabelecimento(self, estabelecimento):
        '''
        Este metodo cria um csv com o número de docentes em todos os anos (de 2000 a 2010)
        num dado estabelecimento.
        O estabelecimento é passado como parametro do método
        '''
        d = Dados()

        path = 'CSV/Numero de Docentes em ' + str(estabelecimento) + '.csv'
        try:
            os.stat(os.path.dirname(path))
            pass
        except:
            os.mkdir(os.path.dirname(path))
            pass

        csvWriter = csv.writer(open(path, 'wb'), delimiter=',')
        csvWriter.writerow(["Estabelecimento", "Ano Lectivo", "Numero de Docentes"])
        for ano in d.anos:
            numero = d.getNDocentesPorEstabelecimentoPorAno(estabelecimento, ano)
            csvWriter.writerow([estabelecimento, ano, numero])
            pass
        pass

    def csvNDocentesCategoriaEstabelecimentoAno(self, categoria, estabelecimento):
        '''
        Este metodo cria um csv com o número de docentes em todos os anos (de 2000 a 2010)
        num dado estabelecimento por categoria.
        O estabelecimento e a categoria são passados como parametros do método.
        '''
        d = Dados()

        path = 'CSV/Numero de ' + str(categoria) + ' em ' + str(estabelecimento) + '.csv'
        try:
            os.stat(os.path.dirname(path))
            pass
        except:
            os.mkdir(os.path.dirname(path))
            pass
        
        csvWriter = csv.writer(open(path, 'wb'), delimiter=',')
        csvWriter.writerow(["Categoria", "Estabelecimento", "Ano Lectivo", "Numero de Docentes"])
        for ano in d.anos:
            numero = d.getNDocentesPorCategoriaPorEstabelecimentoPorAno(categoria, estabelecimento, ano)
            csvWriter.writerow([categoria, estabelecimento, ano, numero])
            pass
        pass

    def csvNDocentesGrauEstabelecimentoAno(self, grau, estabelecimento):
        '''
        Este metodo cria um csv com o número de docentes em todos os anos (de 2000 a 2010)
        num dado estabelecimento por grau.
        O estabelecimento e o grau são passado comos parametros do método
        '''
        d = Dados()

        path = 'CSV/Numero de ' + str(grau) + ' em ' + str(estabelecimento) + '.csv'
        try:
            os.stat(os.path.dirname(path))
            pass
        except:
            os.mkdir(os.path.dirname(path))
            pass
        
        csvWriter = csv.writer(open(path, 'wb'), delimiter=',')
        csvWriter.writerow(["Grau", "Estabelecimento", "Ano Lectivo", "Numero de Docentes"])
        for ano in d.anos:
            numero = d.getNDocentesPorGrauPorEstabelecimentoPorAno(grau, estabelecimento, ano)
            csvWriter.writerow([grau, estabelecimento, ano, numero])
            pass 
        pass
